Object-oriented programming (“OOP”) is a programming technique that creates computer programs by constructing certain objects and creating relationships among and between the objects. An object groups together data attributes and one or more operations that can use or affect the data attributes. The joining of data attributes and operations into a unitary building block is called “encapsulation.”
To create objects that have similar data attributes and operations, a class must be defined. A class serves as a template for constructing a group of objects, by providing a general description of the group (i.e., by defining the group's data structure, as well as the operations for supporting the group's defined data structure). An object is often referred to as an instance or instantiation of its class.
In OOP, classes form a “hierarchy.” A class can be created through derivation (often called inheritance) from another class. A derived class (called a subclass or a child class) automatically includes all of the characteristics (i.e., data structure and operations) of its ancestor class (called a parent class). Derived classes, however, can add, override, or redefine the inherited data structures and operations of their parent classes.
One type of OOP language is Objective C. In this language, each data unit of an object is referred to as an “instance variable” (“IVAR”), while the objects operations are referred to as “methods.” Also, in Objective C, a class is a particular object that describes behavior. Any object that is not a class object is called an instance of its class. In other words, an “instance” is a non-class object that acquires a behavior and has states.
Furthermore, in Objective C, each derived subclass can only add or modify the behavior of its parent class, but it cannot delete the data attributes or methods of its parent. Also, in this language, an object can be instructed to perform one of its methods when it receives a “message.” A message typically includes a method selector (i.e., method name) and arguments.
Computer systems often need to archive the data settings of their objects. These systems often use complex archiving techniques to store such data settings. For instance, some prior techniques require each object to include the processing logic for directing its archiving. Consequently, there is a need in the art for a simple archiving method.
Furthermore, there is a need for archiving object-based multi-user documents. A multi-user document is a piece of coherent data (such as a word processing document, a spreadsheet document, etc.) that multiple people create or edit. Such documents typically include objects that have global and user settings. Global settings are settings that are uniformly (i.e., globally) defined for all users, whereas user settings are settings that are uniquely defined for each user.